Field
The present application concerns the placement of tasks submitted to a cluster and more particularly a method, a computer program and a device for allocating computer resources of the cluster for the execution of tasks submitted to that cluster.
Description of the Related Technology
Clusters generally group together servers, data storage units, microprocessors and telematics equipment taking the form of racks in which items of computer equipment are installed, for example removably.
A plurality of clusters is often brought together to form data centers or server clusters.
Data centers generally bring together hundreds and sometimes thousands of electronic devices to interconnect via items of computer equipment.
These items of computer equipment are generally carried by blades inserted into the racks.
An item of computer equipment is likened here to a node, in other words a basic item of computer equipment for computation. Each node thus forms an independent computer and has characteristics specific to itself, for example, such as the number of cores it comprises as well as a predetermined memory size (each core forming a computation unit).
One or more nodes form a processing zone, also referred to as computation zone, and they correspond to computing resources of a cluster. The processing zone may in some cases be formed by only some electronic components of one node, or even, on the contrary, by a high number of nodes.
These clusters generally further comprise a control and monitoring unit provided with a task management system, also termed a task manager.
The task manager is configured to receive a certain number of tasks requested from outside the cluster.
Methods of allocating computer resources of a cluster for executing tasks submitted to that cluster are known, which have the step of receiving tasks and of placing them in a queue. When a new task is submitted, the latter is directly added to the queue, for example at the end of the queue.
To be executed, the tasks submitted require computer resources corresponding to hardware requirements, for example the number of cores needed, the size of memory needed and/or the execution priority level for that task (for example minimum, normal or maximum).
These known methods furthermore have the step of receiving information relative to the hardware characteristics of the computer resources of the cluster as well as availability characteristics of those resources. This means that the task manager receives information concerning, for example, the number of cores of each node and the predetermined size of memory of each core in order to know the hardware characteristics of the cluster or at the very least of a processing zone of that cluster. Furthermore, this means that the task manager receives the characteristics of availability of each of those nodes.
These known methods furthermore comprise the step of determining the allocation of the computer resources to the listed tasks that are queued and ready to be executed, according to the hardware characteristics of those tasks (hardware needs and priority) and according to the hardware and availability characteristics specific to the processing zone (in other words specific, for example, to each node of that zone).
The task manager next sends a task selected from the waiting list to the allocated computer resources in order for that task to be executed by the cluster.
Each new task added to the task queue is thus executed according to the criteria for available required computer resources and priority.